As a system LSI has become sophisticated and larger in size, many function nodes (processing constituents that require functions such as calculation, storage, or IO (Input/Output)) have been installed in the LSI. A plurality of function nodes described above can be regarded as a parallel calculation system in which the function nodes work together to perform one process. It is necessary to transfer data between a plurality of function nodes. When the number of function nodes is small, communication generally takes place in such a way that one communication path called bus is shared in a time division manner when data are transferred between function nodes. As the number of function nodes increases, the bus turns out to be a bottleneck in terms of performance when large amounts of data are simultaneously transferred. Therefore, in recent years, for a system LSI in which many function nodes are installed, the idea of using a network for communication between function nodes has been studied. A method of connecting function nodes in a system LSI using a network is known as NoC (Network On Chip).
FIG. 2 shows an example of the configuration of a parallel calculation system 1000 having a two-dimensional mesh structure. The parallel calculation system 1000 includes a plurality of function nodes 200 and a plurality of network switches 100, which connect the function nodes 200. The communication between the function nodes 200 is performed via the network switches 100.
What is disclosed in NPL 1 is a typical network switch (on-chip router) for on-chip network (FIG. 13). A conventional network switch decides on a route dynamically based on a destination node address stored in a packet header. Therefore, the transferring process may need to wait for an undetermined period of time depending on how crowded the to-be-transferred packets are. Depending on a routing algorithm, a deadlock could occur. However, the adoption of a virtual channel helps prevent a deadlock. It is also possible to mitigate the congestion of packets.
FIG. 13 shows an example of a network switch 100 having two virtual channels. The network switch 100 includes five input ports 110, five output ports 120, a 5×5 crossbar switch, an arbiter unit, and five FIFO (First-In First-Out) buffers. In this case, a process of transferring data from each input port 110 to each output port 120 is performed via the crossbar switch. However, even in this case, the transfer time is undetermined; it is difficult to guarantee a communication bandwidth in communication between function nodes when packets are transferred. In this case, in order to guarantee the communication bandwidth between nodes, the following and other steps have been taken: the network switch 100 is so designed that the performance of the network switch 100 is higher than required relative to a requested communication bandwidth.
FIG. 14 shows a time-division multiplex switch, which is disclosed in PTL 1 and NPL 2. A network switch 100, which makes up the time-division multiplex switch, includes five input ports 110, five output ports 120, a 5×5 crossbar switch, a slot table 700, and five FIFO buffers. In this case, a process of transferring data from the input ports 110 to the output ports 120 is performed via the crossbar switch. In the time-division multiplex switch shown in FIG. 14, a unit of time, called frame, is divided into slots, which are much smaller in time, before the crossbar switch is controlled. The crossbar switch is controlled based on connection information, which is stored in advance in the slot table 700. A slot is allocated according to a data transfer communication bandwidth needed for a process of transferring data from a given input port 110 to an output port 120. Therefore, it is possible to carry out communication with a guaranteed communication bandwidth.